INSTALL
aclocal.m4
autom4te.cache
+data/.osk-layout-workbench
data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in
data/gnome-shell-extension-prefs.desktop
--- /dev/null
+Gnome-shell OSK layouts are extracted from CLDR layout definitions:
+https://www.unicode.org/cldr/charts/latest/keyboards/layouts/index.html
+
+Updating these involves several steps:
+
+1) Downloading and unzipping the tarball found at:
+ http://www.unicode.org/Public/cldr/latest/keyboards.zip
+
+ This file contains XML files describing the keyboard layouts.
+
+2) Cloning the cldr2json script at:
+ git://repo.or.cz/cldr2json.git
+
+ It will be used to convert the XML files into JSON that can be
+ directly consumed by gnome-shell.
+
+3) Running the script to produce the files:
+ ./cldr2json <input-directory> <output-directory>
+
+ We shall usually use the "android" folder, since that's most
+ complete, and similar to our UI and target sizes. And the target
+ directory must be data/osk-layouts in this repository.
+
+4) Modify gnome-shell-osk-layouts.gresource.xml to include the files
+
+5) Do git add on the updated/new files, and git commit.
+
+
+Or alternatively:
+
+1) Run update-osk-layouts.sh
+
+2) Do git add and git commit
--- /dev/null
+#!/bin/env bash
+
+CLDR_LAYOUTS_TARBALL="http://www.unicode.org/Public/cldr/latest/keyboards.zip"
+CLDR2JSON_GIT="git://repo.or.cz/cldr2json.git"
+
+WORKDIR=".osk-layout-workbench"
+CLDR2JSON="$WORKDIR/cldr2json/cldr2json.py"
+SRCDIR="$WORKDIR/keyboards/android"
+DESTDIR="osk-layouts"
+GRESOURCE_FILE="gnome-shell-osk-layouts.gresource.xml"
+TMP_GRESOURCE_FILE=".$GRESOURCE_FILE.tmp"
+
+cd `dirname $0`
+
+# Ensure work/dest dirs
+rm -rf $WORKDIR
+mkdir -p $WORKDIR
+mkdir -p "osk-layouts"
+
+# Download stuff on the work dir
+pushd $WORKDIR
+gio copy $CLDR_LAYOUTS_TARBALL .
+git clone $CLDR2JSON_GIT
+unzip keyboards.zip
+popd
+
+# Transform to JSON files
+$CLDR2JSON $SRCDIR $DESTDIR
+
+# Generate new gresources xml file
+cat >$TMP_GRESOURCE_FILE <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/shell/osk-layouts">
+EOF
+
+for f in $DESTDIR/*.json
+do
+ echo " <file>$(basename $f)</file>" >>$TMP_GRESOURCE_FILE
+done
+
+cat >>$TMP_GRESOURCE_FILE <<EOF
+ </gresource>
+</gresources>
+EOF
+
+# Rewrite old gresources xml
+mv $TMP_GRESOURCE_FILE $GRESOURCE_FILE